From 4f5ab681d208993f94553203f4be323b3c929070 Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Tue, 17 Jun 2014 21:44:28 +0100 Subject: [PATCH] xen/arm: Panic when we receive an unexpected trap The current implementation of do_unexpected_trap make Xen spin forever on the current physical CPU. This may lead to stall guests VCPU and print unhelpful message (RCU stall...). Usually when Xen receives an unexpected trap, it means that something goes wrong either in the hypervisor or in the CPU. In this case we should directly panic to also stop the other CPUs. Signed-off-by: Julien Grall Acked-by: Ian Campbell --- xen/arch/arm/traps.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c index 31127feea3..7f77c56ac3 100644 --- a/xen/arch/arm/traps.c +++ b/xen/arch/arm/traps.c @@ -999,7 +999,7 @@ void do_unexpected_trap(const char *msg, struct cpu_user_regs *regs) { printk("CPU%d: Unexpected Trap: %s\n", smp_processor_id(), msg); show_execution_state(regs); - while(1); + panic("CPU%d: Unexpected Trap: %s\n", smp_processor_id(), msg); } typedef register_t (*arm_hypercall_fn_t)( -- 2.30.2